package com.wootion.cims.module.communitypersonal.model;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 社区个人表(Person)实体类
 *
 * @author makejava
 * @since 2022-12-12 15:54:00
 */
@Data
@TableName(value = "person", autoResultMap = true)
@ApiModel(value = "社区个人")
@Accessors(chain = true)
public class Person implements Serializable {
    private static final long serialVersionUID = -15768219405941697L;

    @ApiModelProperty(value = "id")
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    @ApiModelProperty(value = "名称")
    private String name;

    @ApiModelProperty(value = "民族")
    private String nation;

    @ApiModelProperty(value = "手机号")
    private String tel;

    @ApiModelProperty(value = "身份证号")
    private String idNumber;

    @ApiModelProperty(value = "是否可用")
    private Boolean enabled;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @ApiModelProperty(value = "性别")
    private String gender;

    @ApiModelProperty(value = "年龄")
    private String age;

    @ApiModelProperty(value = "出生日期")
    private Date birthTime;

    @ApiModelProperty(value = "户籍地")
    private String place;

    @ApiModelProperty(value = "户主或与户主的关系")
    private String relationship;

    @ApiModelProperty(value = "户口性质")
    private String household;

    @ApiModelProperty(value = "原籍类型")
    private String originType;

    @ApiModelProperty(value = "文化程度")
    private String standard;

    @ApiModelProperty(value = "婚姻状况")
    private String maritalStatus;

    @ApiModelProperty(value = "户籍编号")
    private String houseNumber;

    @ApiModelProperty(value = "户籍派出所")
    private String policeStation;

    @ApiModelProperty(value = "居住地")
    private String abode;

    @ApiModelProperty(value = "户籍地住宅id")
    private String placeId;

    @ApiModelProperty(value = "居住地住宅id")
    private String abodeId;

    @ApiModelProperty(value = "出生地")
    private String birthPlace;

    @ApiModelProperty(value = "流动人口")
    private String migrant;

    @ApiModelProperty(value = "结婚日期")
    private Date marriedTime;

    @ApiModelProperty(value = "计生类别")
    private String familyPlan;

    @ApiModelProperty(value = "子女信息")
    private String son;

    @ApiModelProperty(value = "工作类别")
    private String jobType;

    @ApiModelProperty(value = "工作单位")
    private String jobUnit;

    @ApiModelProperty(value = "健康状况")
    private String healthState;

    @ApiModelProperty(value = "特殊人群")
    private String crowd;

    @ApiModelProperty(value = "其他备注")
    private String remark;

    @ApiModelProperty(value = "老年人综合信息")
    private String oldman;

    @ApiModelProperty(value = "残疾人综合信息")
    private String deformedMan;

    @ApiModelProperty(value = "低保综合信息")
    private String underProtect;

    @ApiModelProperty(value = "优抚综合信息")
    private String careMan;

    @ApiModelProperty(value = "党员综合信息")
    private String partMan;

    @ApiModelProperty(value = "信息详情居住地址变更记录")
    private String log;

    @ApiModelProperty(value = "居住性质")
    private String livehold;

    @ApiModelProperty(value = "入住人员备注")
    private String liveremark;

    @ApiModelProperty(value = "户籍人员备注")
    private String placeremark;

    @ApiModelProperty(value = "租住地住宅id")
    private String tenantId;

    @ApiModelProperty(value = "区域内外标识,户籍 false是区域外")
    private Boolean inside1;

    @ApiModelProperty(value = "户籍区域外省份")
    private String out1Province;

    @ApiModelProperty(value = "户籍区域外市")
    private String out1City;

    @ApiModelProperty(value = "户籍区域外详细地址")
    private String out1FullAddress;

    @ApiModelProperty(value = "区域内外标识,居住 false是区域外")
    private Boolean inside2;

    @ApiModelProperty(value = "居住区域外省份")
    private String out2Province;

    @ApiModelProperty(value = "居住区域外市")
    private String out2City;

    @ApiModelProperty(value = "居住区域外详细地址")
    private String out2FullAddress;

    @ApiModelProperty(value = "社会保障")
    private String socialSecurity;

    @ApiModelProperty(value = "租户综合信息")
    private String tenant;

    @ApiModelProperty(value = "变更日期")
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private List<PersonItem> chageDate;

    @ApiModelProperty(value = "老年人标识")
    private String oldmanInset;

    @ApiModelProperty(value = "优抚标识")
    private String careInset;

    @ApiModelProperty(value = "残疾人标识")
    private String deforInset;

    @ApiModelProperty(value = "党员标识")
    private String partInset;

    @ApiModelProperty(value = "低保标识")
    private String underInset;

    @ApiModelProperty(value = "租户标识")
    private String tentInset;

    @ApiModelProperty(value = "导入标识")
    private String drInset;

    @ApiModelProperty(value = "导入标识")
    private String wz;

    @ExcelProperty("居住地址")
    @TableField(exist = false)
    private String tradeName;
}

